A virtual machine is a software representation of a physical machine upon which programs execute. A virtual machine presents to a program, such as a guest operating system, software representation of physical resources, which may include virtualized versions of a central processing unit (CPU), system memory, and peripheral devices. Attempts by the guest operating system (OS) to access these virtual resources are typically received by the virtual machine, and then executed on a physical CPU of the physical host computer upon which the virtual machine executes.
There are several drawbacks with how virtual machines handle requests to utilize virtual resources, some of which are well known.